# -*- coding: UTF-8 -*-

# 这个文件的所有函数主要用来操作k8s环境


# 这个函数用来创建一个HDFS MR环境，在整个执行过程中，这个HDFS都是要得以保留的，并且被所有的Hadoop MR环境共享
# 用DCLib.Config.HDFS_MASTER_POD_DEFAULT_NAME来为HDFS master所在的pod赋值
# 输入参数：
# data_node_num：节点的数量
# file_block_size：文件块的大小，以MB为单位
# replication：副本数量
def start_a_shared_HDFS_env(data_node_num: int, file_block_size: int, replication: int):
    pass


# 这个函数用来创建一个hadoop MR环境，所有MR环境共享同一个HDFS
# 返回值：对应yarn master pod的名字，名字可以yarn master+一个随机数
# 输入的值：yarn slave节点的数量
def start_a_MR_env(yarn_slave_num: int):
    pass


# 这个函数用来将本地的文件传输到一个pod中
# 输入的值：
# file_name：本地文件的路径和名字
# pod_name：要传输的pod（一个pod一个容器）的名字
# pod_dir：将文件放在pod中的位置
def copy_local_file_to_pod(file_name: str, pod_name: str, pod_dir: str):
    pass


# 在一个yarn_master节点中执行一个mapreduce任务
# 输入为yarn_master节点的名字，map和reduce脚本都在根目录下
# 输入两个hdfs的目录，分别为输入和输出文件在hdfs中的位置
def start_MR_in_yarn_master(yarn_master_name: str, hdfs_input_file_name: str, hdfs_output_file_name: str):
    pass


# 将本地文件拷贝到HDFS中，本机不在k8s集群中
# local_input_data：本机文件名
# hdfs_dir：要发送到的hdfs目录名
def copy_local_data_to_HDFS(local_input_data: str, hdfs_dir: str):
    pass


# 将HDFS文件拷贝到本地
# hdfs_dir：将这个目录下的所有文件拷贝到本地，并且合并成一个文件
# local_output_file_name：本地文件名
def copy_HDFS_data_to_local(hdfs_dir: str, local_output_file_name: str):
    pass